package com.naiterui.ehp.bs.recommend.service;

import java.util.List;
import java.util.Set;

import com.naiterui.ehp.bp.bo.medication.MedicationDefaultUsageBO;
import com.naiterui.ehp.bp.bo.recommend.param.RebuyNoticeParamBO;
import com.naiterui.ehp.bp.support.exception.BusinessException;
import com.naiterui.ehp.bs.recommend.bean.MedicationRecomDetail;
import com.naiterui.ehp.bs.recommend.vo.MedicationRecomDetailVO;
import com.naiterui.ehp.bs.recommend.vo.RecomDrugCycleVO;

public interface IRecomDetailService {
    /**
     * 根据推荐ID查询推荐详情列表
     */
    List<MedicationRecomDetailVO> getDetailsByRecomId(Long recommendId);

    /**
     * 根绝推荐ID集合获取推荐详情List
     */
    List<MedicationRecomDetailVO> getDetailsByRecomIds(Set<Long> recomIdSet);

    /**
     * 获取最长用药周期的推荐信息
     */
    RecomDrugCycleVO getLongestRecommend(RebuyNoticeParamBO rebuyNoticeParamBO) throws BusinessException;

    /**
     * 根据默认用法用量和医生填写的用法用量计算用药周期
     */
    Double calculateDrugCycle(MedicationRecomDetail recomDetail, MedicationDefaultUsageBO defaultUsage);
}
